/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.zuq.geocode.route;

import java.util.Date;
import java.util.List;

/**
 *
 * @author zuq
 */
public interface RouteService {

    public RouteResponse generateRoute(String from, String to);

    public RouteResponse generateRoute(List<Waypoint> waypoints);

    public RouteResponse generateRoute(String from, String to, RouteOptions options);

    public RouteResponse generateRoute(List<Waypoint> waypoints, RouteOptions options);


    public class RouteOptions {
        private Date expectedRouteDate;
        private RoutePreference preferences;
        private AvoidList avoidList;
    }

    public enum RoutePreference {
        FASTEST, CAR, PEDESTRIAN, BIKE // touristic, bus, traffic
    }

    public class AvoidList {
        private boolean highways;
        private List<String> addesses;
        private List<Waypoint> points;
        // area
    }
}
